//app.js
// const amap = require('./libs/amap-wx') //高德
const  QQMapWX = require('./libs/qqmap-wx-jssdk1.2/qqmap-wx-jssdk') //腾讯
const config = require('./config')
const Utils = require('./public.js')
// const miniShopPlugin = requirePlugin('mini-shop-plugin');
App({
 
  onLaunch: function () {
  this.overShare() //朋友圈功能
  this.overShares() //朋友功能
    // 初始化云函数
    if (config.isFyApp && wx.cloud) {
      wx.cloud.init({
        traceUser: true,
      })
    }
    // 获取状态栏高度
    if (wx.getMenuButtonBoundingClientRect && wx.getSystemInfo) {
      let menuButtonObject = wx.getMenuButtonBoundingClientRect()
      console.log('menuButtonObject为',menuButtonObject)
      wx.getSystemInfo({
        success: res => {
          console.log('当前机型信息',res)
          let statusBarHeight = res.statusBarHeight,
          navHeight = statusBarHeight + menuButtonObject.height + (menuButtonObject.top - statusBarHeight) * 2; //导航高度
          this.globalData.navHeight = navHeight
        },
        fail(err) {
          console.log(err);
        }
      })

      let _self = this;
    wx.getSystemInfo({
      success: res => {
      let modelmes = res.model;
      if (modelmes.search('iPhone X') != -1) {
      
      _self.globalData.isIphoneX = true
      }
      wx.setStorageSync('modelmes', modelmes)
      
      }
    })

    }
 
    // miniShopPlugin.initApp(this, wx);
  },
  overShares: function () {
    let _this = this
    //间接实现全局设置分享内容
    wx.onAppRoute(function (res) {

      //获取加载的页面

      let pages = getCurrentPages(),
        //获取当前页面的对象
        view = pages[pages.length - 1],
        data;
      if (view) {
        data = view.data;
        if (!data.isOverShare) {
          // data.isOverShare = true;
          console.log('全局分享参数：',view)
        //   view.onShareAppMessage = function () {
        //     //重写分享配置
        //     return {
        //       title: '飞羊精选' ,
        //       path: view.route ,   //分享页面地址
        //     //   imageUrl: 'http://feiyangimage.oss-cn-shanghai.aliyuncs.com/wxApplets/share.jpg',
        
        //     };

        //   }

        }

      }

    })

  },
  overShare:function() {
    // 监听路由切换
    wx.onAppRoute(function(res) {
      console.log('route',res)
      let pages = getCurrentPages()
      let view = pages[pages.length - 1]
     
      if(view) {
        wx.showShareMenu({
          withShareTicket:true,
          menus:['shareAppMessage','shareTimeline']
        })
      }
    })
  },

  onShow: function (opt) {
    // console.log('场景值为', opt.scene)
    this.globalData.scenc = opt.scene
    // 小程序从后台切换到前台时，情况地理位置信息
    this.globalData.location = null
    if (opt.scene !== 1154) {
      // 判断是否可以调用检查接口
      const updateManager = wx.getUpdateManager()
      // if (updateManager && updateManager.onUpdateReady) {
      //   updateManager.onUpdateReady(function () {
      //     wx.showModal({
      //       title: '更新提示',
      //       content: '新版本已经准备好，是否重启应用？',
      //       success: function (res) {
      //         if (res.confirm) {
      //           // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
      //           updateManager.applyUpdate()
      //         }

      //       }
      //     })
      //   })
      // }
    }
  },

  /**
   * 获取位置信息，小程序处于前台状态，只会获取一次
   * @param {function} success 成功回调，参数为定位的数据
   * @param {function} fail 失败回调
   * @param {boolean} update 是否更新位置信息
   * @discussion 使用方法举例：
   * getApp().getLocation ((data) => {
   *      const lon = data.longitude,  // xpoint
          const lat = data.latitude,   // ypoint
        })
   */
  getLocation(success = () => { }, fail = () => { }, updata = false) {
    if (updata) {
      this.globalData.location = null
    }
    // 当本地有缓存数据，直接取缓存的数据
    if (this.globalData.location) {
      success(this.globalData.location)
    } else {
      const that = this
      wx.getSetting({  //获取用户授权情况
        success: res => {
          if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) { // 用户非首次访问，且曾经拒绝过授权，此时res.authSetting['scope.userLocation'] 一般返回false
            //这里是跳转开启定位页面，引导用户授权的代码
            return false
          }
          // this.getLocations() //继续下一步
          wx.getLocation({  // 这一步 如果用户是首次访问，则会弹出授权弹窗
            type: 'gcj02',
            success: res => {
              this.globalData.latitude=res.latitude
              this.globalData.longitude=res.longitude
              // this.getLocal()  //继续下一步
              const qqmapsdk = new QQMapWX({
                key:this.globalData.qqmapsdk // 申请的key
              })
               qqmapsdk.reverseGeocoder({
                  location: {
                      latitude: this.globalData.latitude,
                      longitude: this.globalData.longitude
                  },
                  success: res => {
                    res.result.latitude=this.globalData.latitude
                    res.result.longitude=this.globalData.longitude    
                    res.result.regeocodeData={
                      addressComponent:res.result.address_component
                    }
                    this.globalData.location =  res.result
                    success( res.result)
                  },
                  fail: error => {
                     console.log(error.message,"error.message")
                      Utils.showToast(error.message)
                  }
              })
  
            },
            fail: res => {
           
              if (res.errMsg == 'getLocation:fail 1' || 
              res.errMsg == 'getLocation:fail system permission denied' ||
              res.errMsg == 'getLocation:fail:system permission denied'
              ) { 
                
                wx.showModal({
                  title: '您手机定位功能没有开启',
                  content: '请在系统设置中打开定位服务',
                  success() {
                         // 跳到首页
                  }
                })
       
     
    
              } else if (res.errMsg == 'getLocation:fail auth deny' || res.errMsg == 'getLocation:fail:auth denied') {
                console.log("juejeu")
                  // 用户拒绝了授权，跳去开启定位页面引导授权的代码
              } else { // 别的错误
                
                  Utils.showToast('网络错误：获取用户所在位置经纬度失败！')
              }
            }
          })
        },
        fail: () => {
          // console.log(res,"5555777777")
          Utils.showToast('网络错误：获取用户授权信息失败！')
        }
      })
      // 本地没有缓存数据或当前需要重新刷新数据，则调用高德地图获取
      // const AMAP = new amap.AMapWX({
      //   key: this.globalData.amapKey
      // })
      // 使用高德api获取位置信息
      // AMAP.getRegeo({
      //   success: data => {
      //     that.globalData.location = data[0]
      //     success(data[0])
      //   },
      //   fail: err => {
      //     fail(err)
      //   }
      // })
    }
  },
 
  cacheLocationData(data) {
    this.globalData.location = data
  },
  globalData: {
    cardId:'',  //会员卡商品
    discount:1,  //会员卡数量
    productprice:'',  //会员卡价格
    latitude:"",
    longitude:"",
    isIphoneX:null,
    navHeight: 60,
    location: null,
    userInfo: null,
    unionId: '',
    openid: '',
    // amapKey: '5afb7824c95c002a82df568b2dca93a5', //高德地图KEY
    qqmapsdk:'SUOBZ-SJG6B-PQQUT-JL75Z-3F3Z5-AAFJ3', // 原P35BZ-K2WAS-GUZO7-6IRVW-IYBQV-ZUB6B
    musicUrl:'',
    managerId:''
  }
})